/*******************************************************************/
/* @ All Rights Reserved Copyright (C) 2014 broada,Co.,Ltd.        */
/*                                                                 */
/*  NAME      = frame_params.h                                     */
/*  NOTE      =                                                    */
/*  DATE      = 2014/11/17 by yaohl                                */
/*******************************************************************/

#ifndef __FRAME_PARAMS_H_
#define __FRAME_PARAMS_H_

//最小时间单位
#define APM_CFG_MIN_TIMEOUT  2

typedef struct __apm_params {
    unsigned int ui_ct_hash_size;           /* ct hash table大小 */
    unsigned int ui_ct_max_cnt;             /* ct 最大跟踪条数 */
    unsigned int ui_ct_data_pkgs;           /* 最大数据包缓存条数 */

    unsigned int ui_tcp_est_timeout;        /* tcp连接完成后的timeout时间 */
    unsigned int ui_tcp_syn_timeout;        /* tcp syn的timeout时间 */
    unsigned int ui_udp_est_timeout;        /* udp连接完成后的timeout时间 */
    unsigned int ui_relative_timeout;       /* 关联连接的timeout时间 */

    unsigned int ui_dead_conn_time;         /* 僵尸连接时间 */
    unsigned int ui_session_timeout;        /* session timeout时间 */

    unsigned int ui_l7_detect_max_times;    /* 最大的协议判断次数 */
    unsigned int ui_l7_deep_max;            /* 协议的最大嵌套深度 */

    unsigned int ui_cmd_srv_port;           /* cui 命令服务器端口 */
    char arr_zmq_connect[128];               /* zmq 连接的配置 */
    unsigned int ui_do_task_cnt;            /* 协议解析线程个数 */

    unsigned int ui_stat_server_hash_size;  /* 统计类:服务节点信息的hash大小 */

    /* 调试用 */
    char arr_apmdbg_report_file[128];   /* 上报数据输出文件名 */
    char arr_apmdbg_report_ip[20];     /* 上报数据的服务器ip */
    unsigned int ui_apmdbg_report_port; /* 上报数据的服务器端口 */


} Frapm_params;

//更改配置文件路径
#define APM_CFG_FILENAME_APM              "../conf/apm.conf"      /* zlog配置文件 */
#define APM_CFG_FILENAME_ZLOG             "../conf/zlog.conf"     /* zlog配置文件 */
#define APM_CFG_FILENAME_ANALYZER         "../conf/analyzer.conf" /* 协议解析库配置文件 */
#define APM_CFG_FILENAME_FILTER           "../conf/filter.conf"   /* 数据包过滤配置文件 */

/* l7默认解析协议 key*/
#define APM_ANALYZER_KEY_L7_DEFAULT         "l7_default"
/* 解析用协议模块加载 key*/
#define APM_ANALYZER_KEY_MODULE_LOAD        "libs_load"
/* 解析用协议模块卸载 key*/
#define APM_ANALYZER_KEY_MODULE_UNLOAD      "libs_unload"
/* 指定服务器的协议 key*/
#define APM_ANALYZER_KEY_PROTOCOLS_LOAD     "protocols_load"


int  frame_params_get(void);
void frame_params_output(void);

extern Frapm_params st_apm_params;

#endif
